/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package projeto.voztg.pkg2.pkg0;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.Timer;
import projeto.voztg.pkg2.pkg0.Listener.Dispatcher;
import projeto.voztg.pkg2.pkg0.Listener.Evento;

/**
 *
 * @author cris
 */
public class Relogios {

    public static int i = 0;     //indexador
    public static int contagem = 0;
    private static SonsThread voz = new SonsThread();
    private static String LetraAtual;
    private static String OpcaoAtual;
    public static int contaSegundos = 0;
    private static int botao = 0;
    private static final ActionListener actOpcoes = new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent evt) {
            voz = new SonsThread();


            if (i == Config.getQtOpcoes()) {
                i = 0;
            }

            voz.tocaSom(Config.getCaminhoOutPut() + LetrasENumeros.getOpcoes(i) + ".wav");
            OpcaoAtual = LetrasENumeros.getOpcoes(i);
           // System.out.println(LetrasENumeros.getOpcoes(i));
            i++;
            contagem++;

            if (contagem == Config.getQtOpcoes() * Config.getQtRepeticoes()) {
                timOpcoes.stop();
                contagem = 0;
                i = 0;

            }

        }
    };
    private static final ActionListener actVogal = new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent evt) {
            voz = new SonsThread();
            if (i == LetrasENumeros.getQtVogal()) {
                i = 0;
            }

            voz.tocaSom(Config.getCaminhoOutPut() + LetrasENumeros.getVogal(i) + ".wav");
            LetraAtual = LetrasENumeros.getVogal(i);
             //System.out.println(LetrasENumeros.getVogal(i));
            i++;
            contagem++;
            if (contagem == LetrasENumeros.getQtVogal() * Config.getQtRepeticoes()) {
                timVogal.stop();
                contagem = 0;
                i = 0;

            }

        }
    };
    private static final ActionListener actAntes = new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent evt) {
            voz = new SonsThread();
            if (i == LetrasENumeros.getQtAntes()) {
                i = 0;
            }

            voz.tocaSom(Config.getCaminhoOutPut() + LetrasENumeros.getConsoanteAntes(i) + ".wav");
            LetraAtual = LetrasENumeros.getConsoanteAntes(i);
             //System.out.println(LetrasENumeros.getConsoanteAntes(i));
            i++;
            contagem++;
            if (contagem == LetrasENumeros.getQtAntes() * Config.getQtRepeticoes()) {
                timAntes.stop();
                contagem = 0;
                i = 0;

            }
        }
    };
    private static final ActionListener actDepois = new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent evt) {
            voz = new SonsThread();
            if (i == LetrasENumeros.getQtDepois()) {
                i = 0;
            }

            voz.tocaSom(Config.getCaminhoOutPut() + LetrasENumeros.getConsoanteDepois(i) + ".wav");
            LetraAtual = LetrasENumeros.getConsoanteDepois(i);
            // System.out.println(LetrasENumeros.getConsoanteDepois(i));
            i++;
            contagem++;
            if (contagem == LetrasENumeros.getQtDepois() * Config.getQtRepeticoes()) {
                timDepois.stop();
                contagem = 0;
                i = 0;
            }
        }
    };
    private static final ActionListener actMousePressed = new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent evt) {
            contaSegundos++;
            if (contaSegundos ==2) {
                timMousePressed.stop();
                Dispatcher.getInstance().dispatchEvent(new Evento(botao));
            }

        }
    };
    public static Timer timDepois = new Timer(Config.getTimeLetra(), actDepois);
    public static Timer timOpcoes = new Timer(Config.getTimeOpcoes(), actOpcoes);
    public static Timer timAntes = new Timer(Config.getTimeLetra(), actAntes);
    public static Timer timVogal = new Timer(Config.getTimeLetra(), actVogal);
    public static Timer timMousePressed = new Timer(1000, actMousePressed);

    public static String getLetraAtual() {
        return LetraAtual;
    }

    public static String getOpcaoAtual() {
        return OpcaoAtual;
    }

    public static boolean SomeIsRunning() {
        if (timOpcoes.isRunning() || timVogal.isRunning() || timAntes.isRunning() || timDepois.isRunning()) {
            return true;
        }
        return false;
    }

    public static void paraControle() {
        timOpcoes.stop();
        timVogal.stop();
        timAntes.stop();
        timDepois.stop();
        contagem = 0;
        i = 0;


    }

    public static void InicTimerCorreto() {
       LetraAtual="";
        switch (OpcaoAtual) {
            case "vogal":
                timVogal.start();
                break;
            case "antes":
                timAntes.start();
                break;
            case "depois":
                timDepois.start();
                break;
            case "espasso":
                timOpcoes.start();
                break;
            case "numero":
//to do
                break;
            case "pontuassao":
//to do
                break;
        }
        i = 0;
        contagem = 0;


    }

    public static void recriarRelogio() {
        timDepois = new Timer(Config.getTimeLetra(), actDepois);
        timOpcoes = new Timer(Config.getTimeOpcoes(), actOpcoes);
        timAntes = new Timer(Config.getTimeLetra(), actAntes);
        timVogal = new Timer(Config.getTimeLetra(), actVogal);

    }

    public static void iniciarTimer(int _botao) {
        contaSegundos = 0;
        botao = _botao;
        timMousePressed.start();

    }
}
